The present invention relates to initialization of fibre channel arbitrated loops and, in particular, to a method and system for automatically determining the highest common transmit and receive rates for all the nodes participating in the fibre channel arbitrated loop.
The fibre channel (xe2x80x9cFCxe2x80x9d) is an architecture and a hierarchical set of protocols that define a data communications network for interconnecting a number of different computers and peripheral devices. The FC supports a variety of upper-level protocols, including the small computer systems interface (xe2x80x9cSCSIxe2x80x9d) protocol. A computer or peripheral device is linked to the network through an FC port and copper wires or optical fibres. An FC port includes a transceiver and an interface controller. The computer peripheral device in which an FC port is contained is called a xe2x80x9chost,xe2x80x9d and the combination of an FC port and a host is called an xe2x80x9cFC node.xe2x80x9d An FC port exchanges data with a host via a local data bus, such as a peripheral computer interface (xe2x80x9cPCIxe2x80x9d) bus. The interface controller controls lower-level protocol exchanges between the fibre channel and the computer or peripheral device in which the FC port resides.
An interface controller within an FC port serves essentially as a transducer between serial receiver and transmitter components of the FC port and the host processor of the FC node in which the FC port is contained. On the input side, the interface controller is concerned with assembling serially-encoded data received from the receiver component into ordered sets of bytes, assembling the ordered sets of bytes into FC primitives and FC frames, performing internal state transitions in order to conform to lower-level FC protocols, and passing FC frames, along with status information, to the host processor within the context of larger collections of FC frames, called FC sequences and FC exchanges. On the output side, the interface controller accepts host memory buffer references and control information from the host processor and transforms them into FC frames within the context of FC sequences and FC exchanges, providing the FC frames to the transmitter component of the FC port for serial transmission to the FC, and transmits FC primitives in response to received FC primitives and state transitions in order to conform to lower-level FC protocols.
FC nodes can be interconnected by the FC in a number of different topologies. The present invention relates to the FC arbitrated loop topology in which FC nodes are linked together in a continuous loop, with the transmitter of a first FC node linked to the receiver of the next FC node in the loop and the receiver of the first FC node linked to the transmitter of the previous FC node in the arbitrated loop. FC primitives and FC frames travel in a single direction through the arbitrated loop from a transmitting FC node to a receiving FC node, passing through intervening FC nodes.
FC nodes may transmit and receive data through the FC at different rates. It is desirable for FC nodes, upon power up and initialization, to automatically determine the highest common data transmission and reception rate among all the nodes of the FC arbitrated loop in order to maximize data transmission rates through the FC.
The ethernet is a different type of communications network medium that features parallel signal transmission through a bus-like data transfer medium interconnecting ethernet nodes. The Institute of Electrical and Electronics Engineers (xe2x80x9cIEEExe2x80x9d) ethernet standard (802.3u Clause 28) describes an auto-negotiation function that allows an ethernet node to advertise any enhanced modes of operation that it supports to a second ethernet node and to detect similar enhanced operational nodes advertised via the auto-negotiation function by the second ethernet node. This auto-negotiation function allows two ethernet devices that share a link segment to automatically configure themselves to take advantage of the maximum shared operational modes. This auto-negotiation function is performed using a modified 10 BASE-T link integrity test pulse sequence that is a feature of the lowest, hardware-implemented protocol levels of an ethernet node, thereby avoiding introduction of specialized auto-negotiation packets and higher-level protocol overhead to ethernet nodes. This type of auto-negotiation function depends on the existence of a point-to-point interconnection between the two communicating nodes, so that the two nodes can exchange information about their enhanced operational modes. Because the negotiation occurs at the lowest protocol levels, the negotiation cannot operate through intervening nodes, such as the intervening nodes of a fibre channel arbitrated loop, without adding enormous complexity to the communications port logic, normally implemented in hardware. Thus, although an auto-negotiation speed function similar to the auto-negotiation function supported by the IEEE ethernet standard would be desirable for FC arbitrated loops, no currently-available FC arbitrated loop implementation supports such an auto-negotiation speed function at the lowest-protocol levels that would allow the auto-negotiation speed function to be implemented without introducing extensive changes to higher-level FC protocols.
The present invention provides a method and system for automatic data transmission and reception rate negotiation among the FC nodes of an FC arbitrated loop during FC arbitrated loop initialization. An auto-speed-negotiation function is inserted into the interface controller initialization logic of an FC port. In order to begin auto-speed negotiation, an FC node turns off the FC node""s transmitter for a first period of time and then reactivates the transmitter at the highest possible data transmission rate supported by the FC node""s transceiver. Next, the FC node sets the FC node""s receiver to receive data at the receiver""s lowest data reception rate. The FC node then waits for the receiver to detect word synchronization. If word synchronization is not achieved in a reasonable period of time, the FC node changes the receiver""s data reception rate and again waits for detection of word synchronization. In one embodiment of the present invention, the FC node waits for 1 millisecond for word synchronization before adjusting the data reception rate. The receiver rate continues to be adjusted in this manner until word synchronization is achieved. Following detection of word synchronization, the FC node determines whether its current data transmission rate is equal to its current data reception rate. If so, then the auto-speed-negotiation function is finished, and the FC node carries out the remaining steps of FC arbitrated loop initialization. If the data transmission rate is not currently equal to the negotiated receiver rate, the FC node turns off its transmitter, waits for a period of time, and then reactivates the transmitter at a data transmission rate equal to the receiver""s current data reception rate. The auto-speed-negotiation function is invoked during the initialization routine executed by FC nodes upon power up, detection of loss of signal, or detection of loss of word synchronization. Because the auto-speed-negotiation function is inserted in one of the beginning phases of fibre channel arbitrated loop initialization, and because no other changes to the relatively complex FC node state machine and state transitions are necessary to implement the auto-speed-negotiation function, complex changes to higher level FC protocols are avoided.